package cn.tips.dmp.system.assist.message.service;

import cn.tips.dmp.system.assist.message.dto.SystemMessageRelDto;
import cn.tips.dmp.system.assist.message.dto.SystemMessageParamsDto;
import cn.tips.dmp.system.assist.message.dto.SystemMessageResultDto;
import cn.tips.dmp.system.assist.message.po.SystemMessageRelPo;
import cn.tips.dmp.supports.jpa.PageParamsDTO;
import cn.tips.dmp.supports.jpa.SortParamsDTO;
import cn.tips.dmp.system.assist.message.po.SystemMessageTextPo;
import org.springframework.data.domain.Page;

import java.util.List;

public interface SystemMessageService {

    /**
     * 分页获取记录
     *
     * @param searchDto 查询DTO
     * @param pageParamsDto   分页DTO
     * @param sortParamsDto   排序DTO
     * @return 分页记录
     */
    Page<SystemMessageRelPo> readAllByPage(SystemMessageRelDto searchDto, PageParamsDTO pageParamsDto, SortParamsDTO sortParamsDto);

    /**
     * 根据id获取po
     *
     * @param id id
     * @return po
     */
    SystemMessageRelPo readById(Long id);

    List<SystemMessageRelPo> readAll(SystemMessageParamsDto searchDto, PageParamsDTO pageDto, SortParamsDTO sortDto);

    SystemMessageTextPo addMessageText(Long relationId, String messageTitle, String messageContent);

    void addMessageRel(Long messageTextId, Long sendUserId, Long sendDeptId, Long receiveUserId, Long receiveDeptId,
                    String receiveMessageTerminal,
                    Integer messageScope,
                    Integer messageClassify,
                    Integer messageType,
                    Integer messageTextState,
                    Integer messageSendState,
                    String sendMessageTerminal,
                    String sendMessageModule);

    List<SystemMessageResultDto> getMessageData(String terminal, Long deptId, Long userId);

    void setReadState(Long id);
}

